a = 1
b = 200


# 执行两个整数的相加操作
c = a + b
print(c)

# 其实就是执行了 __add__
d = a.__add__(b)
print(d)


class Student:
    def __init__(self, name):
        self.name = name

    # 两个对象相加的方法 __add__
    def __add__(self, othoer):
        return self.name+othoer.name


stu1 = Student('阿瑾')
stu2 = Student('阿洛')

X = stu1 + stu2
print(X)


lst = [11, 22, 33, 44]

# len 输入这个对象的长度
print(len(lst))
# 也可以这样写
print(lst.__len__())

print('--------------------')


class Person(object):
    def __new__(cls, *args, **kwargs):
        print('1.__new__ 被调用执行，cls的id的值{0}'.format(id(cls)))
        obj = super(). __new__(cls)
        print('创建的对象id为： {}'.format(id(obj)))
        return obj

    def __init__(self, name, age):
        print('2.__init__被调用了，self的id值为：{0}'.format(id(self)))
        self.name = name
        self.age = age


print('object这个类对象的id为：{0}'.format(id(object)))
print('Person这个类对象的id为：{0}'.format(id(Person)))


# 创建Person类的实例对象
p1 = Person('张三', 20)
print('p1这个Person类的实例对象的id：{0}'.format(id(p1)))
